/**
 * Copyright FunASR (https://github.com/alibaba-damo-academy/FunASR). All Rights
 * Reserved. MIT License  (https://opensource.org/licenses/MIT)
 */
/* 2021-2023 by zhaoming,mali aihealthx.com */

function WebSocketConnectMethod(config) {
  //定义socket连接方法类

  var speechSokt;
  var connKeeperID;
  var Uri = "ws:dz.xazhsq.cn/ws";

  var msgHandle = config.msgHandle;
  var stateHandle = config.stateHandle;

  this.wsStart = function () {
    if ("WebSocket" in window) {
      speechSokt = new WebSocket(Uri); // 定义socket连接对象
      speechSokt.onopen = function (e) {
        onOpen(e);
      }; // 定义响应函数
      speechSokt.onclose = function (e) {
        console.log("onclose ws!");
        //speechSokt.close();
        onClose(e);
      };
      speechSokt.onmessage = function (e) {
        onMessage(e);
      };
      speechSokt.onerror = function (e) {
        onError(e);
      };
      return 1;
    } else {
      alert("当前浏览器不支持 WebSocket");
      return 0;
    }
  };

  // 定义停止与发送函数
  this.wsStop = function () {
    if (speechSokt != undefined) {
      console.log("stop ws!");
      speechSokt.close();
    }
  };

  this.wsSend = function (oneData) {
    if (speechSokt == undefined) return;
    if (speechSokt.readyState === 1) {
      // 0:CONNECTING, 1:OPEN, 2:CLOSING, 3:CLOSED

      speechSokt.send(oneData);
    }
  };

  // SOCEKT连接中的消息与状态响应
  function onOpen(e) {
    // 发送json
    var chunk_size = new Array(5, 10, 5);
    var request = {
      chunk_size: chunk_size,
      wav_name: "h5",
      is_speaking: true,
      chunk_interval: 10,
      itn: false,
      mode: "2pass",
    };
    /* if(isfilemode)
		{
			request.wav_format=file_ext;
			if(file_ext=="wav")
			{
				request.wav_format="PCM";
				request.audio_fs=file_sample_rate;
			}
		} */

    //var hotwords=getHotwords();

    /* if(hotwords!=null  )
		{
			request.hotwords=hotwords;
		} */
    console.log(JSON.stringify(request));
    speechSokt.send(JSON.stringify(request));
    console.log("连接成功");
    stateHandle(0);
  }

  function onClose(e) {
    stateHandle(1);
  }

  function onMessage(e) {
    console.log("onmessage ws!");
    msgHandle(e);
  }

  function onError(e) {
    // info_div.innerHTML = "连接" + e;
    console.log(e);
    stateHandle(2);
  }
}
